package com.cskaoyan.javase.basic._3variable._5conversion;

/**
 * @description: 基本数据类型的自动类型转换
 * @author: wuguidong@cskaoyan.onaliyun.com
 **/

/**
 * 自动类型转换,为什么自动,谁在动?
 *      是编译器帮助我们完成类型转换,这意味着我们程序员不需要写额外代码,可以自动完成转换
 * 自动类型转换的前提是什么?
 *      把"小取值范围"的数据类型转换成"大取值范围"的数据类型的过程称之为"自动类型转换",无需写额外代码
 *
 *
 * 自动类型转换是"小到大",不会出现问题,数据不会出现装不下的情况,也就不会溢出
 * 思考: 当我们把整型转换成浮点型时,会不会有精度问题?
 *      会有,因为浮点数有有效位数限制
 *
 *
 *
 *
 */
public class Demo2 {
    public static void main(String[] args) {
        //字面值常量10默认作为int处理,但是我们使用long接收,不会报错,就发生了自动类型转换
        //long a = 10;
        //double b = a;

        //这是"大到小",不是自动类型转换
        //Incompatible types. Found: 'double', required: 'float'
        //float c = 0.1;

        //int a = 2147483647;
        //float b = a;
        //System.out.println(b);

        //double c = a;
        //System.out.println(c);

        char a = 'a'; //char类型自动转换成数值类型,是编码值参与了转换
        int b = a;
        System.out.println();

    }
}
